#课堂练习

#向列表添加元素
friends=[]
friends.append('咖啡')
friends.append('牛奶')
print(friends)

#列表可以存储任何数据类型
# mylist=[5,10,23.76,'Hello',myteacher,7,another_list]
print("letters列表信息如下：")
letters=['a','b','c','d','e']
print(letters)
curElement=input("请输入你要查看的元素索引:")
if curElement!='':
    realElment=int(curElement)
    result=letters[realElment]
    print('获取letters列表中的第一个元素是：%s'%result,'根据索引获取到列表的类型是：',type(result))

#列表分片
listSlice=letters[1:4]
print("列表分片：",listSlice,'列表分片的类型是：',type(listSlice))

#列表分片简写
print("列表分片简写letters[:4]结果:",letters[:4])
print("列表分片简写letters[1:]结果:",letters[1:])
print("列表分片简写letters[:]结果:",letters[:])

#修改元素
print("\n修改元素")
print("letters列表内容为：",letters)
print("修改letters列表的索引为2的值为:WW")
letters[2]='WW'
print("修改后的letters的内容为：",letters)

#向列表添加元素
print('\n向列表添加元素')
print('\n向letters列表尾部添加元素【AA】使用【append】方法：',letters.append('AA'))
print(letters)
print('\n向letters列表尾部添加多个元素[bb,cc,dd] 使用【extend】方法：',letters.extend(['bb','cc','dd']))
print(letters)
print('\n向letters列表指定索引位置添加内容比如：在索引【3】处添加内容【3A】',letters.insert(3,'3A'))
print(letters)

print("\n【append】与【extend】区别")
lettersList1=['a','b','c','d','e']
print("【append】列表内容为：",lettersList1)
lettersList2=['a','b','c','d','e']
print("【extend】列表内容为：",lettersList2)

tmpArray=['append','extend','区别']
print("【append】【extend】列表都分别添加的数组内容为：",tmpArray)

print("【append】添加该数组内容后如下：",lettersList1.append(tmpArray))
print(lettersList1)
print("【extend】添加该数组内容后如下：",lettersList2.extend(tmpArray))
print(lettersList2)


#从列表中删除元素
print("\n从列表中删除元素")

lettersListMV=['a','b','c','d','e']
print("需要删除的列表为：",lettersListMV)

print("使用【Remove】方法删除指定元素[c]后的列表内容是：")
mvListElement=lettersListMV[:]
mvListElement.remove('c')
print(mvListElement)

print("\n使用【Del】方法删除指定索引【1】元素后的列表内容是：")
delListElement=lettersListMV[:]
del delListElement[1]
print(delListElement)


print("\n使用【pop】方法删除最后一个元素后的列表内容是：")
popListElement=lettersListMV[:]
popListElement.pop()
print(popListElement)
print("\n使用【pop】方法删除指定索引【1】元素后的列表内容是：")
popIndexListElement=lettersListMV[:]
popIndexListElement.pop(1)
print(popIndexListElement)

print('\n\n搜索列表')
searchList=lettersListMV[:]
inputElement=input("请输入你要查看的字符：")
if inputElement in searchList:
    print('你当前查看的字符【',inputElement,'】存在列表中','且在列表中的索引是：',searchList.index(inputElement))
else:
    print('你当前查看的字符【',inputElement,'】不存在列表中！！！')


#循环处理列表
print('\n循环处理列表（显示列表中的每个值）')
loopList=lettersListMV[:]
print("当前列表为：",loopList)
print("\n当前列表的每个值为：")
for var in loopList:
    print(var)

#列表排序
print("\n列表排序")
sortList=['w','x','a','d','f','q']
sortList1=sortList[:]
sortList2=sortList[:]
print('当前列表为：',sortList)
print('\n对列表【顺序】排序后的结果是：')
sortList.sort()
print(sortList)
print('\n对列表【顺序(sort())】排序后反转的结果是：')
sortList.reverse()
print(sortList)
print('\n对列表【逆序】排序后的结果是：')
sortList2.sort(reverse=True)
print(sortList)

print('\n另一种对列表【顺序(sorted())】排序后的结果是：')
another=sorted(sortList1)
print(another)

#不可修改的列表是【元组】
print('\n不可修改的列表是【元组】')
tuple=('red','green','blue')
print(tuple)

#双重列表【数据表】
print("\n双重列表【数据表】")
myfriends=['张三','李四','王五','杨六','龙七']

studentScores=[[55,63,77,81],[65,61,67,72],[97,95,92,88]]
print("当前列表内容为：")
print(studentScores)
print("输出列表内容")
for score in studentScores:
    print(score)

print('获取指定索引【0】行【2】列的值：')
print(studentScores[0][2])

